Page({
  onLoad() {
    // 获取用户名下房屋列表
    this.getHouseList()
  },

  async getHouseList() {
    const { code, data } = await wx.http({
      url: '/house',
    })
    if (code !== 10000) return wx.toast()

    // console.log(data)
    this.setData({ houseList: data })
  },

  selectHouse(e) {
    // console.log(e.detail)
    this.setData({
      houseId: e.detail.id,
      houseInfo: e.detail.name,
    })
  },

  getTime(e) {
    // console.log(e.detail)
    const str = wx.dayjs(e.detail).format('YYYY/MM/DD')

    this.setData({
      visitDate: str, // 存储访问日期
      dateLayerVisible: false, // 关闭弹层
    })
  },

  data: {
    dateLayerVisible: false,
    houseLayerVisible: false,

    houseList: [],
    currentDate: +new Date(),

    visitDate: '',
    houseId: '',
    name: '',
    mobile: '',
    gender: 1,
  },

  openHouseLayer() {
    this.setData({ houseLayerVisible: true })
  },
  closeHouseLayer() {
    this.setData({ houseLayerVisible: false })
  },

  openDateLayer() {
    this.setData({ dateLayerVisible: true })
  },
  closeDateLayer() {
    this.setData({ dateLayerVisible: false })
  },

  goPassport() {
    wx.reLaunch({
      url: '/visitor_pkg/pages/passport/index',
    })
  },

  verifyHouse() {
    const valid = this.data.houseId !== ''
    // 验证结果提示
    if (!valid) wx.toast('请选择房屋信息!')
    // 返回验证结果
    return valid
  },

  verifyDate() {
    const valid = this.data.visitDate !== ''
    // 验证结果提示
    if (!valid) wx.toast('请选择时间信息!')
    // 返回验证结果
    return valid
  },

  // 验证业主姓名（必须为汉字）
  verifyName() {
    // 正则表达式
    const reg = /^[\u4e00-\u9fa5]{2,5}$/
    // 验证业主姓名
    const valid = reg.test(this.data.name.trim())
    // 验证结果提示
    if (!valid) wx.toast('请填写真实中文姓名!')
    // 返回验证结果
    return valid
  },

  verifyMobile() {
    // 验证手机号
    const reg = /^[1][3-8][0-9]{9}$/
    const valid = reg.test(this.data.mobile)
    // 验证结果提示
    if (!valid) wx.toast('请填写正确的手机号码!')
    // 返回验证结果
    return valid
  },

  async submit() {
    // 校验 => 请求 => 跳转(data.id)
    if (!this.verifyHouse()) return
    if (!this.verifyName()) return
    if (!this.verifyMobile()) return
    if (!this.verifyDate()) return

    const { houseId, name, gender, mobile, visitDate } = this.data
    const { code, data } = await wx.http({
      url: '/visitor',
      method: 'post',
      data: {
        houseId,
        name,
        gender,
        mobile,
        visitDate,
      },
    })
    if (code !== 10000) return wx.toast()

    // console.log(data)
    wx.navigateTo({
      // 确认后  访客记录会被生成  临时小区二维码生成(展示在通行证页面)
      // 去到通行证页面 需要 id!!!
      url: '/visitor_pkg/pages/passport/index?id=' + data.id,
    })
  },
})
